Hello, 我是 Weber,一位工程師,斜槓鼓手與行銷顧問。
每日一套件的第 24 天,請跟著我一起認識 Rails 開發好用的 30 個套件,建立出自己的常用套件庫吧!
水豚(學名:Hydrochoerus hydrochaeris),是草食動物,主要以草、水生植物、樹皮和果實為食,而且十分挑食。
???
同時,水豚君 也肩負著編寫端對端(E2E)測試的重要任務,從使用者端出發,對系統端進行測試。Capybara 尤其專注 Web 的測試。主要功能是模擬使用者在瀏覽器操作,比如點擊連結、填寫表單、驗證頁面內容等,測試功能等。Capybara 可以與其他測試一起使用,如: RSpec。
老招了,起手式:
$ bundle add capybara
接著就假設我們測試是使用 RSpec 編寫。
有一個網頁上的登入頁面要測試,包含一個用戶名稱、密碼,然後有一顆登入的按鈕。
首先,先以 require 'capybara/rspec'
以下實作一段登入的測試範例:
require 'capybara/rspec'
RSpec.describe "Login function", type: :feature do
before do
Capybara.current_driver = :selenium_chrome
end
after do
Capybara.use_default_driver
end
it "succuss login" do
visit "/login"
fill_in "Username", with: "Weber"
fill_in "Password", with: "password123"
click_button "Login"
expect(page).to have_content "Welcome,Weber!"
end
end
Capybara 在測試中模擬使用者在網頁上的操作。使用 visit
方法前往網頁,使用 fill_in
方法填寫表單,使用 click_button
方法點擊按鈕,最後使用 expect
方法驗證頁面內容。
還有許多其他方法,用於模擬不同的操作,如點擊連結、選擇下拉選單、驗證 DOM 元素等。
可以自行翻閱一下文件,根據不同的需求來寫。
最後一個小測試,請問下圖中,有幾隻 Capybara ?
我們明天見!